# range函数
# range(start,stop,step)
# start:起始值
# stop:终止值
# step:步长
# range(10) 0-9
# range(1,10) 1-9
# range(1,10,2) 1,3,5,7,9

for i in range(10,1,-1): # 倒序输出
    print(i)

# 装饰器：代理模式
# 定义一个装饰器函数，用于装饰其他函数
def decorator(func):
    # 定义一个包装函数，用于在原函数前后添加额外的操作
    def wrapper(*args,**kwargs):
        # 在原函数执行前打印一句话
        print("before")
        # 执行原函数
        func(*args,**kwargs)
        # 在原函数执行后打印一句话
        print("after")
    # 返回包装函数
    return wrapper

@decorator
def func():
    print("hello world")

func()

# 带参数的装饰器
def decorator2(arg):
    def decorator(func):
        def wrapper(*args,**kwargs):
            print(f"before")
            for i in range(arg):
                func(*args,**kwargs)
            print("after")
        return wrapper
    return decorator

@decorator2(3)
def func2():
    print("hello world")

func2()
